package com.agri.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 用户实体
 */
@Data
@TableName("t_user")
public class User {
    @TableId
    private Long id;
    private String username; // 用户名
    private String password; // 加密密码
    private String realName; // 真实姓名
    private String phone; // 手机号
    private String idCard; // 身份证号
    private String email; // 邮箱
    private Integer status; // 状态: 0-禁用, 1-启用
    private Date lastLoginTime; // 最后登录时间
    private Date createTime; // 创建时间
    private Date updateTime; // 更新时间

    // 用户角色列表（非数据库字段）
    @TableField(exist = false)
    private List<Role> roles;

    // 无参构造函数
    public User() {}

    // 全参构造函数（用于测试等场景）
    public User(Long id, String username, String password, String realName,
               Integer status, List<Role> roles) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.realName = realName;
        this.status = status;
        this.roles = roles;
    }
}